Labelled Reductions , Runtime Errors , and Operational Subsumption 1
نویسنده
چکیده
When combining modules it may be the case that the assembly is partially incorrect (errorprone), but nevertheless useful in some contexts. However usual type system will reject such assemblies as soon as they detect a potential error. We propose a more liberal approach: an error in a software configuration is tolerated as long as there are contexts which can use it without reaching the error; as a result, software reusability is improved. We introduce a general framework which defines in a language-independent way what it means to be “erroneous”, and under which conditions a component may “subsume” another (i.e. replace it in any context). This new semantics, based on the observation of errors, is then applied to a comparison of various lambda-calculi, and shown to be close to the well-known approximation semantics. An interesting application is to use the subsumption semantics for a simple term model interpretation of subtyping. The framework also proposes a language-independent specification of labelled reduction, which is used as a technical tool to syntactically characterize finite approximation. This generalizes the work of Mason, Smith and Talcott on getting denotational structures through operational techniques, and furthermore provides an operational way to interpret recursive type definitions.
منابع مشابه
Compiling Curried Functional Languages to .NET
Recent trends in programming language implementation are moving more and more towards “managed” runtime environments. These offer many benefits, including static and dynamic type checking, security, profiling, bounds checking and garbage collection. The Common Language Infrastructure (CLI) is Microsoft’s attempt to define a managed runtime environment. However, since it was designed with more m...
متن کاملA Restarted Strategy for Efficient Subsumption Testing
We study runtime distributions of subsumption testing. On graph data randomly sampled from two different generative models we observe a gradual growth of the tails of the distributions as a function of the problem instance location in the phase transition space. To avoid the heavy tails, we design a randomized restarted subsumption testing algorithm RESUMER2. The algorithm is complete in that i...
متن کاملA Restart Strategy for Fast Subsumption Check and Coverage Estimation
We study the runtime distributions of a simple subsumption check algorithm and show that in some conditions they exhibit heavy tails, indicating a possible runtime advantage achievable by randomizing and restarting the algorithm. Therefore we design ReSumEr, a restarted subsumption tester, incorporating randomization while preserving completeness. On generated graph data, ReSumEr outperforms th...
متن کاملLattice-Search Runtime Distributions May Be Heavy-Tailed
Recent empirical studies show that runtime distributions of backtrack procedures for solving hard combinatorial problems often have intriguing properties. Unlike standard distributions (such as the normal), such distributions decay slower than exponentially and have “heavy tails”. Procedures characterized by heavy-tailed runtime distributions exhibit large variability in efficiency, but a very ...
متن کامل